#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn = 100000007;
bool vis[maxn];
int prime[maxn],n;

void sieve(int n){
    int m = sqrt(n+0.5);
    memset(vis,false,sizeof vis);
    for(register int i=2;i<=m;i++){
        if(!vis[i]){
            for(register int j=i*i;j<=n;j+=i){
                vis[j]=true;
            }
        }
    }
    return;
}

int get_prime(int n){
    sieve(n);
    int c=0;
    for(register int i=2;i<=n;i++){
        if(!vis[i]){
            prime[++c]=i;
        }
    }
    return c;
}

int main(){
    cin>>n;
    int ans = get_prime(n);
    cout<<ans<<endl;
}
